热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

传统|偏见_ECCV2022|计算机视觉中的长尾分布问题还值得做吗

篇首语:本文由编程笔记#小编为大家整理,主要介绍了ECCV2022|计算机视觉中的长尾分布问题还值得做吗相关的知识,希望对你有一定的参考价值。点击上方“

篇首语:本文由编程笔记#小编为大家整理,主要介绍了ECCV 2022|计算机视觉中的长尾分布问题还值得做吗相关的知识,希望对你有一定的参考价值。


点击上方“迈微AI研习社”,选择“星标★”公众号


重磅干货,第一时间送达


公众号主页有分类专栏,希望你可以看看。



长尾分类领域最近的“进展”到底提升的是什么?长尾分布相关的问题后续还能不能做?该怎么做?细看本文作者为大家娓娓道来~ 



时隔两年,饱受了社会的毒打之后,让我们再次重新回到计算机视觉中的长尾分布这个我博士期间研究的主要问题上,看看2022年了这个方向是否还值得继续做下去。本文主要介绍我们今年被ECCV 2022接受的论文《Invariant Feature Learning for Generalized Long-Tailed Classification》



论文链接:https://arxiv.org/abs/2207.09504


代码链接:


https://github.com/kaihuatang/generalized-long-tailed-benchmarks.pytorchgithub.com/kaihuatang/generalized-long-tailed-benchmarks.pytorch


一. 对长尾分类问题的反思和展望


先说暴论:如果只考虑训练集与测试集独立同分布(IID)且长尾分布仅体现在类间分布的情况下,Google的Logit Adjustment(https://arxiv.org/abs/2007.07314)研究已经从理论上提供了非常优雅的最优解了。也就是说,计算机视觉中传统的Long-tailed Classification设定其实早就已经被“完美”解决了。那么这就带来了两个问题:(1)长尾分类领域最近的“进展”到底提升的是什么?(2)长尾分布相关的问题后续还能不能做?该怎么做?


1.1 一种优雅的IID类间长尾分类问题的建模方式


首先, 让我们解释下为什么我认为IID情况下的类间长尾分布问题已经被完美解决了。基于Logit Adjustment文中的分析, 分类问题的概率模型可以通过贝叶斯分解为如下形式:



那么在训练集与测试集独立同分布 (IID) 的情况下, 我们自然而然可以得到如下的假设:, 也就是说对于分类模型, 唯 一的类别bias来自中的第二项。


那么问题就简单了, 我们可以直接通过


402 Payment Required 来将类别分布从训练分布更改为测试分布, 而由于传统长尾分类任务中默认测试分布为均衡分布, 那么就可以去掉最后一项, 因为在分类的logits上加上一个常数项并不会改变最后分类结果。由此, 我们就实现了理论上的对IID类间长尾分布的最优解。

而上述


402 Payment Required 的形式也可以理解为优化Point-wise Mutual Information:, 这个优雅的理解方式来自于苏剑林大佬的博客《通过互信息思想来缓解类别不平衡问题》(https://kexue.fm/archives/7615), 非常推荐大家读一下。

1.2 长尾分类领域最近的“进展”到底提升的是什么?


那么,让我们先来尝试回答一下第一个问题。近年来随着一些基于Ensemble的backbone在长尾分布问题上的应用,其实我们不难发现,目前的趋势是在利用更加通用高效的特征提取方式来提升长尾分类的效果。也就是说是在提升,即找到更好的更鲁棒的和类别对应的特征。但这些通用的方式之所以通用,也是因为他们其实并不能算作长尾分布的算法。这其实就是目前计算机视觉中的长尾分布问题的困境:传统的分布矫正思路已经渐渐走到了尽头,而新的特征学习方法又缺少理论支撑。


不过如果读完下文其实就可以发现,近来的特征学习算法大部分确实也是在解决数据不均衡的问题,但并不是解决类间偏见,而是解决类内的属性偏见。比如multi-expert backbone就可以通过ensemble缓解单个特征空间学到的领域偏见,得到更鲁棒的特征。


1.3 长尾分布相关问题的后续研究还能不能做?该怎么做?


其实计算机视觉中的长尾分布问题还是可以做的。至于做的方向就来自于传统长尾分类任务对问题的过度简化。


其一:并不是所有视觉任务都可以简单建模为。大多数多模态任务中的长尾分布会更加复杂,比如视觉问答VQA数据中的长尾分布既有整体答案的分布,同时又有基于输入问题的条件长尾,即给定特定问题类型,答案呈现长尾分布(如面对问运动的问题时,答案“网球”成为了明显的常见主导类),而实际训练中后者的影响反而比单纯的全局分布更明显。所以如何在更加复杂的多模态任务中解决长尾分布会比单纯分类问题下的长尾分布更有生命力。


其二:工业界真正头疼的长尾分布问题其实并不全是学术界研究的最多的类间长尾。比如当说到无人车训练数据中的长尾分布时,大多数情况下这指代的其实并不是类间长尾。像长尾的天气分布,日夜分布等,并不是模型预测的目标,因此这里长尾的不是类别,而是属性(或者说context)。是这种类内的长尾(intra-class long tail)阻碍了机器学习的进一步在工业界落地,而非类间长尾(inter-class long tail),前者远比后者难得多。所以,如何给出更好的长尾问题的新设定也是个值得研究的方向。比如我即将要说的广义长尾分类(Generalized Long-tailed Classification:https://arxiv.org/abs/2207.09504),或者其他研究者的任意测试分布下的长尾算法(Test-Agnostic Long-Tailed Recognition:https://github.com/Vanint/TADE-AgnosticLT),还有近来一些把类间长尾分类和领域泛化(Domain Generalization)结合的工作(https://arxiv.org/abs/2207.10150)等等。


二. 对长尾分类问题的一种拓展思路





图1. 广义长尾=类间长尾+类内长尾

正如我上文提及的,既然单纯的类间长尾无法解释实际应用中所有的数据不均衡问题。那么一个自然而然的拓展思路就是同时考虑类间长尾,即Class-wise Long Tail,和类内长尾,即Attribute-wise Long Tail(这里的属性同时包含了物体层面的属性,如纹理,姿态等,也包含了图像层面的属性,如背景,上下文信息等)。我们将这种同时考虑两种数据不均衡的问题命名为广义长尾分类(Generalized Long-tailed Classification)


2.1 传统建模的局限性

下面让我们看看传统长尾分类问题的建模有什么局限,为什么分类问题还需要考虑一个额外的属性不均衡问题,即类内长尾问题。其实我们从Logit Adjustment(https://arxiv.org/abs/2007.07314)的公式中不难看出,最明显容易有问题的地方就是他的假设了。对!这个假设太强了,这把Logit Adjustment(https://arxiv.org/abs/2007.07314)限制在了IID场景下,而一旦给定类中的数据样本产生分布偏移,这个假设就失效了。而在真实数据中,这种分布偏移或者说领域偏移(Domain Transfer)却又往往并不罕见,不管天气,昼夜,甚至是图片所属城市的变化,都可以产生样本分布的偏移。尤其是对于罕见类别,由于样本不足,使得他们对整体分布的估计很容易存在偏差,也更容易受到领域偏移的影响。这些局限大大的减少了传统IID类间长尾分类任务的实用价值。

但同时每个类别也必然存在不随领域偏移而改变的特征, 否则分类任务本身便不可能存在最优解。因此,我们可以将任意单个物体的图片看作由两个潜在特征向量和生成的,即。这里是具有不变性的类别特征, 可以理解为类别的模板或原型 (Class Prototype, 而是会随着领域而改变分布的属性特征, 这里可以是姿态纹理等物体属性, 也可以是背景光照上下文等图像属性。而我们弱化版的假设就是对于每个类别,存在某个特征子集具备分布不变性, 即。由此, IID分类任务和OOD分类任务就可以分别理解为属性特征不发生分布偏移和发生分布偏移这两种情况。



图2. 传统假设的局限以及我们的弱化版假设

2.2 一种崭新的建模方式

由此, 我们就可以通过将图像分解为两个变量和来实现我们图3的全新建模方式了。该公式同时解释了类别偏见(class bias)和属性偏见(attribute bias)的存在。而和之间的依 赖关系来自我们图3左侧的朴素理解, 即给定类别会存在特定类别原型(注意, 这里我们认为并不是一个的one-hot向量, 而是包含了的多个组成部分, 可以理解为一连串binary的向量, 比如人的为 [头, 躯体, 四肢] 。这样我们也可以很好地拓展到细粒度分类 (fine-grained classification), 一些大类的子类其实就是再额外具备某些特征, 比如牛头人 的其实就是"人"的加上额外的“牛角", 而不需要用一个独立的不相干的onehot向量来表示), 而不同类别原型分别会有不同的属性集合与之对应 (如人和动物等具有四肢的类别存在姿态属性, 而其他物体则没有), 属性的实际取值又受到某外部末知噪声的影响, 至于具体的物体图像则同时由其类别模板和对应属性集决定。



图3. 广义长尾分类的建模方式

下面让我们看看这个新引入的属性偏见(attribute bias)是怎么影响分类结果的。首先就是在每个类别内部, 即便是所有类内图片共享的, 但由于的取值不同attribute bias项会使同一类的样本出现难易之分(如潮湿的皮毛在狗的类别内特别罕见则会使得潮湿的狗变为困难样本), 即图4的例子。其次, 属性偏见(attribute bias)还能解释类别之间是如何产生错分的。比如潮湿的皮毛在河狸类中就很常见, 因为河狸大多生活在水里, 这就给“潮湿的皮毛"与"河狸"之间产生了伪相关性。让潮湿的狗有很大概率被错分为河狸, 也就是图5的例子。



图4. 属性偏见带来的类内长尾



图5. 从属性偏见理解伪相关

2.3 两个数据集,两个指标,三种测试方式

由于之前的类间长尾分类问题和属性相关的领域泛化/迁移问题往往在计算机视觉中被看作两个独立的问题。我们并没有统一的数据集,因此我们构建了两个数据集ImageNet-GLT和MSCOCO-GLT,前者使用预训练模型的特征聚类作为伪属性标注,后者则直接通过MSCOCO-Attribute(https://github.com/genp/cocottributes)数据集获取属性标注。同时我们采取了两个指标,除了传统的正确率(accuracy)外我们也引入了准确率(precision),从而更好的分析传统长尾分类算法的Accuracy-Precision Trade-off(https://github.com/BeierZhu/xERM)现象。最后我们划分了三种测试方式:类间长尾协议(Class-wise Long Tail (CLT) Protocol),属性长尾协议(Attribute-wise Long Tail (ALT) Protocol)和广义长尾协议(Generalized Long Tail (GLT) Protocol),用以独立研究类间长尾,属性长尾和他们的联合效应。这也可以更好的分析不同的算法到底是提升了哪一类鲁棒性。


2.4 一个新的基准方法

同时我们也引入了一种新的基于特征学习的基准方法。我们的基本思路是,类间长尾产生的问题主要体现在分类器(classifier)上,而类内属性长尾的问题主要体现在特征提取器(backbone)上。传统的长尾分类算法,如Logit Adjustment(https://arxiv.org/abs/2007.07314)和Decoupling(https://arxiv.org/abs/1910.09217)都是在不改变特征的基础上调整分类边界。这就可以看作图6中间的例子,但是这样做的问题是,类别间的混淆区域并没有得到很好的处理,也同时造成了上述的Accuracy-Precision Trade-off(https://github.com/BeierZhu/xERM)现象。而我们通过可视化发现,混淆区域内的样本大多拥有相同的背景或者环境,也就是说模型不小心把这类属性信息也学成了分类特征(因为属性在一些类中和类别高度相关),所以我们的思路就是通过特征学习时加入约束,让模型尽可能不去学习这类属性信息。



图6. 特征空间的可视化与分析

因此我们基于Center Loss(https://ydwen.github.io/papers/WenECCV16.pdf)修改了一个名为不变性特性学习(Invariant Feature Learning)的损失约束函数。首先传统的Center Loss已经在人脸分类等任务中证明了自己可以使类内分布尽可能收束,从而增加类间距离。但是传统的特征中心在一个有偏的数据中也是天然有偏的,比如90%的香蕉都是黄色香蕉,那么这个特征中心也会学到0.9的颜色信息,从而降低绿色香蕉的准确性。因此我们通过构建重采样的双环境,均匀难易样本的比重,实现对特征中心更无偏的估计,从而增加Center Loss在我们泛化长尾分类任务中的效果。


2.5 从算法的局限到新的难点

当然,提出这个基准方法主要是为了抛砖引玉,我们希望大家可以在广义长尾分类(GLT)这类更接近实际应用的设定下提出更多更加实用的算法。我们提出的IFL算法也自然有很多不完善之处。比如,我们发现在构建重采样的双环境的过程中,其实也很容易将噪声样本也过度上采样,而在真实数据中噪声样本虽然可以控制在合理范围内但几乎无法避免。因此我们组的易炫宇学弟也尝试将长尾分布和去噪问题结合,该工作也被ECCV 2022接受,名为《Identifying Hard Noise in Long-Tailed Sample Distribution》(https://arxiv.org/abs/2207.13378)该工作的动机和本文也非常相似。另一个问题在于,虽然我们文中表示我们提出的IFL是Invariant Risk Minimization(https://arxiv.org/abs/1907.02893)版的Center Loss,但是原始的IRM约束在真实的视觉数据中往往并没有很好的效果,我们的原始IRM Loss实验中甚至出现10个随机种子有7个会在学习到一般突然变为NaN loss。这也是一个值得研究的问题。


三. 总结

本文主要分享了目前传统计算机视觉中长尾分类任务的一些反思,我们认为传统的IID类间长尾分类已经有了非常完善的解决方案。但该设定大大地简化了甚至忽视了实际应用中长尾分布真正的难点,由此我们拓展了传统长尾分类任务的设定和建模方式,引入了新的类内属性偏见,并提出了更复合实际工业需求的广义长尾分类设定和数据集以及一个简单的基准算法。希望可以启发后来的研究者提供更好的问题建模方式和解决方案。

@inproceedingstang2022invariant,
title=Invariant Feature Learning for Generalized Long-Tailed Classification,
author=Tang, Kaihua and Tao, Mingyuan and Qi, Jiaxin and Liu, Zhenguang and Zhang, Hanwang,
journal=ECCV,
year=2022


后台回复“电子书”、“PyTorch” 获取资料包 加群 —> CV 微信技术交流群



绘图神器下载

后台回复:绘图神器,即可下载绘制神经网络结构的神器!
PyTorch 学习资料下载
后台回复:PyTorch资料,即可下载访问最全的PyTorch入门和实战资料!
专栏推荐下载
专栏订阅:https://blog.csdn.net/charmve/category_10595130.html

迈微AI学术交流群(知识星球)来了!想要了解最新最快最好的CV/DL/ML论文速递、优质开源项目、学习教程和实战训练等资料,欢迎扫描下方二维码,加入CVer学术交流群,已汇集数千人!

▲扫码进群

公众号:迈微AI研习社      微信号: MaiweiE_com

GitHub: @Charmve        CSDN、知乎: @Charmve

个人主页: github.com/Charmve

整理不易,请点赞和在看


推荐阅读
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了brain的意思、读音、翻译、用法、发音、词组、同反义词等内容,以及脑新东方在线英语词典的相关信息。还包括了brain的词汇搭配、形容词和名词的用法,以及与brain相关的短语和词组。此外,还介绍了与brain相关的医学术语和智囊团等相关内容。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • IB 物理真题解析:比潜热、理想气体的应用
    本文是对2017年IB物理试卷paper 2中一道涉及比潜热、理想气体和功率的大题进行解析。题目涉及液氧蒸发成氧气的过程,讲解了液氧和氧气分子的结构以及蒸发后分子之间的作用力变化。同时,文章也给出了解题技巧,建议根据得分点的数量来合理分配答题时间。最后,文章提供了答案解析,标注了每个得分点的位置。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 关于extjs开发实战pdf的信息
    本文目录一览:1、extjs实用开发指南2、本 ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 上一章讲了如何制作数据集,接下来我们使用mmcls来实现多标签分类。 ... [详细]
  • S3D算法详解
    S3D论文详解论文地址:RethinkingSpatiotemporalFeatureLearning:Speed-AccuracyTrade-offsinVide ... [详细]
  • 代码如下:#coding:utf-8importstring,os,sysimportnumpyasnpimportmatplotlib.py ... [详细]
author-avatar
mobiledu2502892377
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有